1. Field of the Invention
The present invention generally relates to a method of detecting a cause of failure in a computer, and particularly relates to a method of detecting a cause of failure in a computer by comparing results of computer testing with results of simulator testing.
2. Description of the Related Art
In testing of a computer device, there is a method of detecting a cause of failure in a computer by comparing results of computer testing obtained by executing a test program on the computer with results of simulator testing obtained by executing the test program on a simulator.
In this method, a test program is executed on the computer and the simulator, and the computer results and the simulator results are compared to estimate a failed program portion where a cause of failure may be in existence. In the failed program portion where a cause of failure may be present, points of record are marked so as to record logs or dumps at the marked points (i.e., instructions for recording logs and dumps are embedded into the test program). The test program is executed again on the computer and the simulator to generate test results, which are compared to further limit the failed portion where a cause of failure may be present. This procedure is repeated as many times as necessary until an exact point where a cause of failure is present is pinpointed.
In this method of detecting a cause of failure in a computer, planting of points of record (i.e., embedding of instructions for recording logs and dumps) in the failed portion may affects a structure of the test program at the very position where a cause of failure may be present. If detectability of a cause of failure depends on the program structure, the cause of failure may not appear when the test is repeated next time.
Further, execution of the entire test program on the computer and the simulator needs to be repeated each time points of record are newly marked in the failed portion. This involves undesirably excessive time and labor.
Further, analysis of the test results obtained from the computer and the simulator may require different interpretation for a different computer, and, thus, only an expert can provide a proper analysis.
Accordingly, there is a need for a method of detecting a cause of failure in a computer which can identify a failure location without planting points of record or without relying on expert analysis, and can reduce time and labor for testing.
Accordingly, it is a general object of the present invention to provide a method of detecting a cause of failure in a computer which can satisfy the need described above.
It is another and more specific object of the present invention to provide a method of detecting a cause of failure in a computer which can identify a failure location without planting points of record or without relying on expert analysis, and can reduce time and labor for testing.
In order to achieve the above object according to the present invention, a method of detecting a cause of a failure in a computer, comprising the steps of performing real-device testing by having a computer execute all instructions of a test program, performing simulator testing by having the computer execute part of the instructions of the test program and having a simulator execute the remainder of the instructions of the test program, and comparing results of the real-device testing with results of the simulator testing so as to identify a portion of the test program that causes a failure.
In the method described above, a portion of the test program that causes a failure can be identified by checking if the comparison indicates a match or mismatch. Namely, if the comparison indicates a match, the part of the instructions executed by the computer in the simulator testing should include a cause of a failure under an assumption that there is a failure (i.e., there should be a mismatch). On the other hand, if the comparison indicates a mismatch, the remainder of the instructions executed by the simulator in the simulator testing should include a cause of a failure.
This method thus can identify a failure location simply by comparing results of the real-device testing with results of the simulator testing, thereby eliminating a need for planting of record points or a need for skill of expert analysis. Further, the real-device testing needs to be performed only once despite the fact that the simulator testing may be repeated many times while changing the part of the instructions executed by the computer until the failure location is identified with a sufficient specificity. Thus, the method of the present invention can reduce time and labor required for the testing.
This scheme for identifying a failure location works perfectly well even if the role of the computer and the role of the simulator are exchanged.
Namely, according to another aspect of the present invention, a method of detecting a cause of a failure in a computer includes the steps of performing simulator testing by having a simulator execute all instructions of a test program, performing real-device testing by having the simulator execute part of the instructions of the test program and having a computer execute the remainder of the instructions of the test program, and comparing results of the simulator testing with results of the real-device testing so as to identify a portion of the test program that causes a failure.
Moreover, this scheme for identifying a failure location works perfectly well even if each of the two testings to be compared with each other is a mixture of real-device testing and simulator testing.
Namely, according to yet another aspect of the present invention, a method of detecting a cause of a failure in a computer includes the steps of a) performing first testing by having a computer execute all or part of instructions of a test program and having a simulator execute the remainder of the instructions of the test program, b) performing second testing by having the simulator execute said all or part of the instructions of the test program and having the computer execute said remainder of the instructions of the test program, c) making a first comparison between results of the first testing and results of the second testing, d) performing, if the first comparison indicates a mismatch, third testing in which the second testing is performed on all the instructions of the test program except for a selected part of the instructions where the selected part of the instructions is subjected to the first testing, e) making a second comparison between results of the first testing and results of the third testing, f) ascertaining that the selected part of the instructions includes a cause of a failure if the second comparison indicates a match, and g) ascertaining that a remaining portion other than the selected part of the instructions includes a cause of a failure if the second comparison indicates a mismatch.